package com.panda.mall.common.mallUser.entity;

import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panda.mall.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* 商城用户表
* mall_user
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("mall_user")
public class MallUser extends BaseEntity implements Serializable {

    /**
    * 用户id
    */
    @NotNull(message="[用户id]不能为空")
    @ApiModelProperty("用户id")
    private Long id;
    /**
    * 账号
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("账号")
    @Length(max= 40,message="编码长度不能超过40")
    private String account;
    /**
    * 密码
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("密码")
    @Length(max= 40,message="编码长度不能超过40")
    private String password;
    /**
    * 昵称
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("昵称")
    @Length(max= 40,message="编码长度不能超过40")
    private String nickname;
    /**
    * 手机
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("手机")
    @Length(max= 40,message="编码长度不能超过40")
    private String mobile;
    /**
    * 邮箱
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("邮箱")
    @Length(max= 40,message="编码长度不能超过40")
    private String email;
    /**
    * QQ、微信id
    */
    @ApiModelProperty("QQ、微信id")
    private Long openId;
    /**
    * 头像链接
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("头像链接")
    @Length(max= 255,message="编码长度不能超过255")
    private String headerUrl;
    /**
    * 性别(0-女，1-男）
    */
    @ApiModelProperty("性别(0-女，1-男）")
    private Integer gender;
    /**
    * 生日
    */
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
    * 城市
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("城市")
    @Length(max= 40,message="编码长度不能超过40")
    private String city;
    /**
    * 职业
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("职业")
    @Length(max= 40,message="编码长度不能超过40")
    private String job;
    /**
    * 签名
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("签名")
    @Length(max= 255,message="编码长度不能超过255")
    private String sign;
    /**
     * 等级id
     */
    @ApiModelProperty("等级id")
    private Long levelId;
    /**
    * 积分
    */
    @ApiModelProperty("积分")
    private Integer integral;
    /**
    * 成长值
    */
    @ApiModelProperty("成长值")
    private Integer growth;
}
